/* Universidad del Valle de Guatemala
 * CC2003 - Algoritmos y Estructuras de Datos
 * HOJA DE TRABAJO #7
 * Fecha de Entrega: Sábado 8 de Octubre de 2011
 */

/**
 * Clase que representa los nodos de la lista simplemente encadenada.
 * @author José Antonio Bagur - 10275
 */

public class Node <E> {
    
            /* ATRIBUTOS DE LA CLASE NODE */
    
            protected E data;                                                   // VALOR ALMACENADO EN EL ELEMENTO
            protected Node<E> nextElement;                                      // REFERENCIA AL PRÓXIMO ELEMENTO
        
            /*¨METODOS DE LA CLASE NODE */
            
            /**
             * Constructor de la clase Node, inicializa el estados de los nodos
             * de la lista.
             * @param v valor.
             * @param next referencia al próximo elemento.
             */
            public Node(E v, Node<E> next) {
                data = v;
                nextElement = next;
            }
            
            
            /**
             * Constructor de la clase Node, inicializa el estado de los nodos
             * la lista.
             * @param v valor.
             */
            public Node(E v) {
                this(v, null);
            }
            
            
            /**
             * Método que permite obtener una referencia al próximo valor en
             * la lista.
             * @return referencia del siguiente valor de la lista.
             */
            public Node<E> next() {
                return nextElement;
            }
        
            
            /**
             * Método que permite definir una referencia al próximo valor en 
             * la lista. 
             * @param next próximo valor en la lista.
             */
            public void setNext(Node<E> next) {
                nextElement = next;
            }
            
            
            /**
             * Método que permite conocer el valor asociado con un elemento de 
             * la lista.
             * @return valor asociado al elemento.
             */
            public E value() {
                return data;
            }
            
            
            /**
             * Método que permite definir un determinado valor a un elemento de 
             * la lista.
             * @param value 
             */
            public void setValue(E value) {
                data = value;
            }
   
}   // FIN DE LA CLASE NODE
